/* 
局部中间件:
    不使用 app.use() 定义的中间件，叫做局部中间件，即只在特定请求生效的中间件
    实例如下：
      const mw1 = (req, res, next) => {
        console.log("经典语录 1 : 不气盛叫年轻人吗?");
        next();
      };

      // 局部中间件的使用
      app.get("/js", wm1, (req, res) => {
        console.log("------------请求来了-------------------");
        res.send("js");
      });

      第二个参数 mw1, 即该请求时生效的中间件。
*/

// 导入 expres 模块
const express = require("express");

// 创建 express 的服务器实例
const app = express();
// 中间件的定义
const wm1 = (req, res, next) => {
  console.log("经典语录1: 不气盛叫年轻人吗？");
  next();
};

const wm2 = (req, res, next) => {
  console.log("经典语录2: 我问你，这瓜保熟吗?");
  next();
};

const wm3 = (req, res, next) => {
  console.log("经典语录3: 跟我华强拼，你有这实力吗?");
  next();
};

// 1. 局部中间件的使用
app.get("/js", wm1, (req, res) => {
  console.log("js 请求");
  res.send("我们来学 web");
});

// 2. 局部使用多个中间件1
app.get("/java", wm3, wm2, (req, res) => {
  console.log("java 请求");
  res.send("我们来学 java");
});

// 3. 局部使用多个中间件2  中括号括起来
app.get("/c", [wm2, wm3, wm1], (req, res) => {
  console.log("c 请求");
  res.send("我们来学 C 语言");
});

// 指定端口号，并启动服务
app.listen(8080, () => {
  console.log("服务已启动, 127.0.0.1:8080");
});
